A High Integrity Profile for Memory Safe Programming in Real-time Java
ثبت نشده
چکیده
The Real-time Specification for Java (RTSJ) has been designed to cover a large spectrum of real-time applications, to achieve this goal the specification must cater to different real-time programming styles. This generality is essential for acceptance of Java by the industry but it also means that there are many error modes that application developers must deal with. The memory subsystem of the RTSJ is one particular area where the RTSJ’s generality creates complexity. This complexity is a problem in high integrity systems as it can be the source of errors, and runtime overheads. The contribution of this paper is a new high integrity profile for memory safe programming in Real-time Java. This profile is notable in the sense that it does not restrict expressiveness of RTSJ programs, yet it guarantees that no memory-related programming errors will occur at runtime. The profile is machine checkable, and simple enough that errors can be readily corrected. While other profile have been put forward, this proposal is the first to have been evaluated on actual deployed software. We report on the use of our profile in a real-time CORBA server which has been used in an avionics application. The results are encouraging as we have been able to refactor the CORBA server relatively easily. The profile allowed to express all of the idioms present in the original system, but without any possibility of errors. Our refactoring effort also uncovered errors and resulted in an executable running 10% faster than the original.
منابع مشابه
A High Integrity Profile for Memory Safe Programming in Real-time Java
The Real-time Specification for Java (RTSJ) has been designed to cover a large spectrum of real-time applications, to achieve this goal the specification must cater to different real-time programming styles. This generality is essential for acceptance of Java by the industry but it also means that there are many error modes that application developers must deal with. The memory subsystem of the...
متن کاملTowards a High Integrity Real-Time Java Virtual Machine
This paper defines a run-time architecture for a Java Virtual Machine (JVM) that supports the Ravenscar-Java profile (RJVM). This architecture introduces an early class loading and verifying model that can facilitate the predictable efficient execution of Java applications, detect program errors at the initialization phase and prevent errors occurring during the mission phase. A pre-emptive fix...
متن کاملA Safe Mobile Code Representation and Run-time Architecture for High-Integrity Real-Time Java Programs
Java is becoming increasingly popular in many application areas due to its rich programming semantics and portability. We believe that high-integrity real-time systems can also greatly benefit by adopting the Java technology, provided the unpredictable overheads and insecurity of the run-time system are conquered. We illustrate in this paper our on-going work on a safe mobile code representatio...
متن کاملPredictable Memory Utilization in the Ravenscar-Java Profile
In this paper, we present the Ravenscar-Java profile from the perspective of memory utilization. This restricted programming model removes language features with high overheads and complex semantics, on which it is hard to perform various static analyses. Several classes in the RTSJ are refined, and a few new classes are added, which all result in a compact, yet powerful and predictable computa...
متن کاملMemory Management Based on Method Invocation in RTSJ
In this paper, we present a memory management model for the Ravenscar-Java profile. Because of the complexity and run-time overheads in verifying the proper use of the RTSJ’s scoped memory, it is unfavourable in the area of high integrity systems where any unpredictability must be cast out. Our approach maps one anonymous memory area to a user-specifiable method by means of our Java 1.5 annotat...
متن کامل